您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

认知无线Ad Hoc网络中的按需路由实现方法

  • 申请号:CN201210076911.3 申请公布号: CN102857988B
  • 申请日: 2012-03-21 申请公布日: 2015-05-27
  • 申请(专利权)人: 专利代理机构: 北京正理专利代理有限公司
  • 分类号:H04W40/02;H04W84/18

专利介绍

本发明涉及认知无线Ad Hoc网络中的按需路由实现方法,该方法包括路由发现过程,路由维护过程,数据转发过程。该方法充分考虑了认知无线Ad Hoc网络的特点,选出了一条高效可靠的路径以实现用户通信的连续性,保证了通信质量。
1.认知无线Adxa0Hoc网络中的按需路由实现方法,其特征在于,该方法包括路由发现过程,路由维护过程,数据转发过程,所述的路由发现过程包括如下步骤:1)源节点向目的节点传输数据时,没有发现到目的节点的有效路径,源节点向中间节点传输RREQ报文来发起路由发现过程,同时源节点在其SOP信道上分别广播RREQ报文,所述RREQ报文包括:信源地址、信源序列号、广播ID、信宿地址、信宿序列号、跳计数、节点SOP信息、路径SOP因子的SOP个数PSI;2)中间节点对收到RREQ进行处理,并判断本节点是否为目的节点;若该节点是目的节点或者知道通往目的节点的路径,则本节点产生RREP报文并沿反向路径传播;若该节点既不是目的节点也不知道通往目的节点的路径,则更新RREQ报文和反向路由表项,广播RREQ报文直至发现目的节点;所述中间节点对收到RREQ进行处理具体为:201)创建一个路由表项,先暂时不分配有效的序列号,只用来记录反向的路径;将RREQ中的SOP信息和本节点的SOP信息取交集获得相同频谱的个数值,该个数值如果小于RREQ报文中PSI值,则用该个数值替换原来的PSI值,若大于则PSI值不变;202)在“路由等待定时内”,收到拥有相同标识的,但是来自不同上游节点的RREQ报文,先将该RREQ中的SOP信息和本节点的SOP信息取交集获得相同频谱的个数值,该个数值如果小于该RREQ报文中PSI值,则用该个数值替换原来的PSI值,若个数值如果大于该RREQ报文中PSI值,则PSI值不变,若在大于路由等待定时且小于路由发现定时时间内收到一个拥有相同标识的RREQ报文,就抛弃该RREQ报文,否则,创建或者更新反向路由表项;203)判断本节点是否为目的节点,如果该节点就是目的节点,或者节xa0点路由表中含有到目的节点的活动的表项,且表项序列号大于RREQ信宿序列号,那么本节点就产生RREP发送到信源;否则,转入到204)进行处理;204)中间节点更新RREQ报文然后进行广播,更新包括:A、信宿序列号=本节点收到的信宿相关的最大序列号,B、跳计数加1,C、RREQ的节点SOP信息替换成本节点的SOP信息,D、RREQ中的PSI值为路由表中下一跳节点所传播的RREQ到达本节点更新后的PSI值;3)收到RREP报文的中间节点建立前向路由表,并判断本节点是否为源节点,若本节点是源节点,则路由发现过程完成;若不是,则更新RREP报文并沿反向路径转发;所述路由维护过程为:当目的节点或活动路由的中间节点移动,导致链路中断;则链路的“上游节点”主动发送一个RERR,该RERR的信宿序列号大于其所获取的信宿序列号,跳计数的值设为无穷大,并通过该上游节点的所有SOP信道传播到所有的活动邻居;所述数据转发过程为:假设节点有N个可用信道,数据流在每个信道上期望发送个数为M1:M2:...:MN,那么将节点缓存区分为N个,缓存区的长度比例为M1:M2:...:MN。
2.根据权利要求1所述的认知无线Adxa0Hoc网络中的按需路由实现方法,其特征在于,步骤3)中间节点判断本节点是否为源节点,并进行RREP转发具体为:301)中间节点通过前面建立起来的反向路由反馈给源节点,并且是以单播方式发送,目的节点产生的RREP报文跳计数为0;中间节点产生的RREP报文跳计数为本节点到信宿的跳数,RREP报文在本节点选出的首选信道或者备用信道上传输;302)中间节点对接收到的RREP报文作如下处理:如果路由表中没有与RREP报文中的信源相匹配的表项,则先创建一个“前向路由表”空表项;否则,满足如下条件下对已有表项进行更新:A:现有表项的信宿序列号小于RREP报文中的信宿序列号;B:现有的表项没有激活;C:信宿序列号虽然相同,但RREP报文的“跳计数”值小于表项中对应的值,或者更新或者创建,产生一个新的前向路径。技术领域
本发明涉及认知无线Adxa0Hoc网络,特别是认知无线Adxa0Hoc网络中的按需路由实现方法。
背景技术
Adxa0Hoc网络是由一组带有无线收发装置的移动终端组成的一个多跳的临时性自治系统,整个网络没有固定的基础设施。网络中的移动终端兼具主机和路由器的功能。由于Adxa0Hoc网络具有无中心自组织的特点和灵活的拓扑结构,这种组网方式被广泛应用在军事通信、紧急服务、传感器网络等多种场合。目前随着无线通信业务需求的快速增长,可用频谱资源变得越来越稀缺。人们通过采用先进的无线通信理论和技术,如链路自适应技术、多天线技术等努力提高频谱效率的同时,却发现全球授权频段,尤其是信号传播特性比较好的低频段的频谱利用率极低。但是从近年一些研究结果可以看到,频谱资源缺乏更多是由于现有的频谱管理与分配策略造成的。现有的频谱管理与分配策略大多是基于静态控制的模型,即管理机构将可用频谱资源划分成固定、非重叠的频谱块,这些频谱块大小固定,并通过保护频带进行分割,将这些频谱块以独占的方式分配给不同的服务和技术部门,包括运营商、广播电视、军事和公共安全部门等。应用这些授权频段的用户称为主用户(Primaryxa0Users,PUs)或者授权用户。认知无线电(Cognitivexa0Radio,CR)作为一种更智能的频谱共享技术,能够依靠人工智能的支持,感知无线通信环境,根据一定的学习和决策算法,实时自适应地改变系统工作参数,动态的检测和有效地利用空闲频谱,理论上允许在时间、频率以及空间上进行多维的频谱复用。这将大大降低频谱和带宽的限制对无线技术发展的束缚。因此这一技术被预言为未来最热门的无线技术。将认知无线电技术与Adxa0Hoc网络相结合,就形成了认知无线Adxa0Hoc网络,即网络中的每一个移动终端或者节点(以下文中统一称为节点)都具有认知的能力,它们可以感知并检测到主用户在一段时间内未使用的频谱集合形成本节点的频谱机会(Spectrumxa0OPportunities,SOPs),选择合适的频谱并调整传输参数来传输本节点的数据。这些节点被称为次用户(Secondaryxa0Users,SUs)。路由技术是Adxa0Hoc网络中的一项重要技术,研究多跳认知无线电网络的选路问题,既要考虑到自组织网络选路的共性原则问题,又要考虑到认知无线电网络动态频谱接入与使用的特有问题。Adxa0Hoc网络中的路由协议从路由发现的角度可以分为主动路由和按需路由,主动式路由协议不适用于拓扑动态变化的Adxa0Hoc网络,按需路由中最典型的路由协议包括动态源路由协议(Dynamicxa0Sourcexa0Routing,DSR)和Adxa0Hoc按需距离矢量协议(Adxa0Hocxa0onxa0Demandxa0Dxa0stancexa0Vector,AODV)路由协议,认知网络的主要特点是频谱的间歇性,这种频谱不可用导致的链路不可用是相对较为频繁的小范围内的链路特点,DSR不能对这种变化作出快速反应,可能会引起路由重寻,极大的增加了路由开销。而AODV是逐跳机制的,每个中间节点都维护一个路由表,有利于小范围路由信息的变化跟踪,本发明是在该协议的基础上,提出了适用于认知无线Adxa0Hoc网络的路由协议。AODV路由协议包括路由发现和路由维护两个过程。AODV有三种基本的报文:表1,RREQ(Routexa0REQuexa0st)报文,表2,RREP(Routexa0REPly)报文和表3,RRER(Routexa0RERor)报文,即路由请求,路由回复和路由错误报文。表1.RREQ报文格式 ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 表2.RREP报文格式 ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 表3.RRER报文格式 ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> ●路由发现过程1)RREQ分组节点在有需要时(路径不存在或者无效),向它的邻居广播RREQ来进行路由发现。RREQ分组包括:信源地址、信源序列号、广播ID、信宿地址、信宿序列号、跳计数。其中:A:<信源地址,广播ID>是RREQ分组的唯一标识;B:信源节点维护一个信源序列号,表示的是“到信源的反向路由的新旧”;C:信宿序列号则表示的是“到信宿的前向路由的新旧”,是过去所有接收到的与信宿有关的消息中的最大值。要求节点为每一个目的节点都维护一个信宿序列号;D:跳计数的初始值设置为0;2)对RREQ的处理接收到RREQ的节点会作出如下处理:1.创建一个路由表项,先暂时不分配有效的序列号,只用来记录反向的路径;2.如果在“路由发现定时”内已收到一个拥有相同标识的RREQ分组,就抛弃该分组;否则,就更新这个反向路由表项:A:信宿序列号=RREQ分组的信宿序列号;B:下一跳节点=广播该RREQ的邻居(从哪个邻居接受到的此RREQ分组);C:跳数=RREQ分组的“跳计数”字段值;D:设置表项的“过时定时器”;3.如果该节点就是信宿,或者节点路由表中含有到信宿的活动的表项,且表项序列号大于RREQ信宿序列号,那么节点就产生RREP发送到信源;如果不满足以上两点,转入到4中进行处理;4.更新RREQ分组然后进行广播A:信宿序列号=本节点收到的该信宿相关的最大序列号;B:跳计数加1;如图1所示,S节点有向D节点发送数据的需求,发起路由发现过程,过程如下:步骤一:S节点首先产生RREQ消息并将其以广播方式泛洪发送,邻居节点a、c、e都收到RREQ消息,更新各自的路由表,记录发送该消息的上游节点S、跳计数、目的节点序列号。相当于建立了各节点到源节点的反向路径。节点a、c、e继续以广播方式发送RREQ消息。步骤二:节点b、e、f收到该消息,其中e节点在定时器时间内收到同样的RREQ消息,丢弃该消息,f节点在定时器时间内分别收到e节点和a节点发送的RREQ消息,由于其先收到e节点的RREQ消息于是将记录发送该消息的上游节点e、跳计数、目的节点序列号,并丢弃再次收到的a节点发送的RREQ消息。同样b节点也更新路由表记录上游节点a、跳计数、目的节点序列号。步骤三:节点b、f继续以广播方式发送RREQ消息。b节点没有通向D节点的链路,最终RREQ消息会因为超过TTL(Timexa0Toxa0Live)值被丢弃。D节点收到f节点的RREQ消息,将产生RREP消息回复。3)RREP的传播产生RREP的条件如上所述,RREP中的内容包括:跳计数、信宿序列号、信宿地址、生存时间、信源地址等。节点通过前面建立起来的反向路由反馈给源节点,并且是以单播方式发送,目的节点产生的RREP消息跳计数为0;中间节点产生的RREP消息跳计数为本结点到信宿的跳数(查相应路由表项可得到)。4)对RREP的处理节点对接收到的RREP分组作如下处理:1.如果没有与RREP分组中的信源相匹配的表项,则先创建一个“前向路由表”空表项;2.否则,满足如下条件下对已有表项进行更新:A:现有表项的信宿序列号小于RREP分组中的信宿序列号;B:现有的表项没有激活;C:信宿序列号虽然相同,但RREP分组的“跳计数“值小于表项中对应的值,或者更新或者创建,产生一个新的前向路径;路由表项更新:下一跳=广播RREP的邻居节点;信宿序列号=RREP中的信宿序列号;3.将RREP中的跳计数加1,通过反向路径传播。如图2所示,D节点满足条件产生RREP消息,中间节点f首先转发RREP,它更新路由表,并记录转发该消息的下游节点D、跳计数、生存时间、目的节点序列号,并根据前面记录的反向路由信息将RREP报文转发给上游节点e,直至源节点S;源节点S收到RREP后,就获得了到目的节点D的路由,接下来,源节点就可以用该路由进行数据报文的发送了。●路由维护过程1)与活动路由无关的结点移动,并不影响信源到信宿的寻径;2)如果信源结点移动导致路由不可用,则由信源重新发起路由发现的过程;3)当信宿结点或活动路由的中间结点移动,导致链路中断;或者通过邻居节点定期发送的HELLO消息发现链路中断时,则链路的“上游结点”主动发送一个RERR,该RERR的信宿序列号大于其所获取的信宿序列号,跳计数的值设为∞,并传播到所有的活动邻居。该过程重复,直至所有的相关信源结点被通告到,如果需要,信源结点从新发起路由发现过程。AODV路由协议在认知无线Adxa0Hoc网络中主要面临以下几个问题:1)频谱动态性:当前检测到的可用频谱资源在经过一段时间后或许不能再使用,这导致了间隙性连接(Intermittentxa0connectivity)的问题,它使得依靠之前检测到的可用频谱所建立的路由很快失效,这样会降低该路由的端到端性能,并且会增加路由维护以及重寻的开销。2)频谱多样性:在一段时间内CR节点可能检测到较多的可以用来通信的无线频谱资源,这样一个含有丰富频谱的集合为CR节点的通信带来了新的特点,AODV协议只适用于单频点Adxa0Hoc网络。3)频谱差异性:认知无线Adxa0Hoc网络中的节点之间所使用的频谱资源是有差异的,每个节点不能够总是知道其它节点所能够用来通信的无线频段集合,因此限制了路由协议的设计。AODV中所有节点使用相同的频谱资源。4)公共控制信道的缺少:传统的多跳网络中需要公共控制信道传输本地或全局的广播信息,如邻居发现,路由发现等消息。认知网络中不存在这样一个公共控制信道,也给路由协议的设计造成了困难。5)数据转发的问题:认知Adxa0hoc网络是多频段的网络,一个节点可能有多个信道可以用来传输数据;同时,一个节点可能是多条路径的中间节点,要转发多个业务数据流。这样就产生了节点的多业务数据多频段调度问题。AODV没有考虑到这方面的特点。
发明内容
本发明的目的在于避免以上现有技术的不足提出认知无线Adxa0Hoc网络中的按需路由实现方法。以解决由于认知无线Adxa0Hoc网络的网络特性所带来的信道的间隙性,异构性,多样性及引起的路径选择和数据转发方面的问题。本发明的目的通过以下技术方案来实现:认知无线Adxa0Hoc网络中的按需路由实现方法,该方法包括路由发现过程,路由维护过程,数据转发过程,所述的路由发现过程包括如下步骤:1)源节点向目的节点传输数据时,没有发现到目的节点的有效路径,源节点向中间节点传输RREQ报文来发起路由发现过程,同时源节点在其SOP信道上分别广播RREQ报文;2)中间节点对收到RREQ进行处理,并判断本节点是否为目的节点;若该节点是目的节点或者知道通往目的节点的路径,则本节点产生RREP报文并沿反向路径传播;若该节点既不是目的节点也不知道通往目的节点的路径,则更新RREQ报文和反向路由表项,广播RREQ报文直至发现目的节点;3)收到RREP报文的中间节点建立前向路由表,并判断本节点是否为源节点,若本节点是源节点,则路由发现过程完成;若不是,则更新RREP报文并沿反向路径转发;所述路由维护过程为:当目的节点或活动路由的中间结点移动,导致链路中断;则链路的“上游结点”主动发送一个RERR,该RERR的信宿序列号大于其所获取的信宿序列号,跳计数的值设为无穷大,并通过该节点的所有SOP信道传播到所有的活动邻居;所述数据转发过程为:假设节点有1∶2...∶N个可用信道,数据流在每个信道上期望发送个数为M1∶M2∶...MN,那么将节点缓存区分为N个,缓存区的长度比例为M1∶M2∶...MN。进一步,所述的步骤1中的RREQ报文为:信源地址、信源序列号、广播ID、信宿地址、信宿序列号、跳计数、路径SOP因子PSI。进一步,所述步骤2)中间节点对收到RREQ进行处理具体为:201)创建一个路由表项,先暂时不分配有效的序列号,只用来记录反向的路径;将RREQ中的SOP信息和本节点的SOP信息取交集获得相同频谱的个数,该数值如果小于RREQ消息中PSI值,则用该数值替换原来的PSI值,若大于则PSI值不变;202)在“路由等待定时内”,收到拥有相同标识的,但是来自不同上游节点的RREQ分组,先将该RREQ中的SOP信息和本节点的SOP信息取交集获得相同频谱的个数,该数值如果小于该RREQ消息中PSI值,则用该数值替换原来的PSI值,若数值如果大于该RREQ消息中PSI值,则PSI值不变;203)判断本节点是否为目的节点,如果该节点就是目的节点,或者节点路由表中含有到目的节点的活动的表项,且表项序列号大于RREQ信宿序列号,那么本节点就产生RREP发送到信源;如果不满足以上两点,转入到204进行处理;204)中间节点更新RREQ分组然后进行广播。进一步,所述步骤3)中间节点判断本节点是否为源节点,并进行RREP传播具体为:301)节点通过前面建立起来的反向路由反馈给源节点,并且是以单播方式发送,目的节点产生的RREP消息跳计数为0;中间节点产生的RREP消息跳计数为本结点到信宿的跳数,RREP消息在本节点选出的首选信道或者备用信道上传输;302)节点对接收到的RREP分组作如下处理:1.如果路由表中没有与RREP分组中的信源相匹配的表项,则先创建一个“前向路由表”空表项;2.否则,满足如下条件下对已有表项进行更新:A:现有表项的信宿序列号小于RREP分组中的信宿序列号;B:现有的表项没有激活;C:信宿序列号虽然相同,但RREP分组的“跳计数“值小于表项中对应的值,或者更新或者创建,产生一个新的前向路径。本发明的优点在于:1)提出了一种适应认知无线Adxa0Hoc网络的CAODV路由,该路由修改了RREQ报文格式用来传输节点的SOP信息,充分利用了认知无线Adxa0Hoc中节点的频谱多样性的特点,选择一条频谱较为丰富的路径,这样路由协议的应用场景与实际的情况更加接近。2)修改路由表和RREP报文格式用来记录两个信道的信息,通过将信道容量和信噪比相结合定义了新的路由度量,计算节点可用信道的路由度量,选出首选信道和备用信道,这样如果主用户重新使用首选信道导致链路中断时,节点可以应用备用信道传输数据,不需要进行路由重寻过程,降低了重新选路的开销。3)本发明中RREQ报文和RRER报文在节点的SOP信道上发送,RREP报文在选出的首选信道或者备用信道上传输,几类报文的传输不需要公共控制信道,这也符合认知无线电技术的初衷。4)提出了一种比例公平的信道调度方法,该方法的应用场景是节点在某一时刻只能通过一个信道来发送数据,该方法保证了信道使用和数据传输的公平性。5)CAODV路由协议在选则节点的同时选择用来传输数据的频谱,端到端的路径和信道被同时建立。
附图说明
图1:RREQ路由发现;图2:RREP的传播;图3:主用户信道使用模型;图4:CAODV中RREQ传播过程一;图5:CAODV中RREQ传播过程二;图6:CAODV中RREQ传播过程三;图7:CAODV中RREQ传播过程四;图8:CAODV中RREP传播过程。
具体实施方式
本发明基于以下假设:1)在认知无线Adxa0Hoc网络中,每个节点通过媒体访问控制层(Mediumxa0Accessxa0Control,MAC)对主用户频段的感知已经获得本节点的SOP信息。每一个节点有两根天线,一根用于扫描本节点所有可用SOP上的信号,包括两种信号:一是在该频段上感知到主用户的信号;二是通过该频段接收到邻居认知节点的信号。节点可以对这两种信号进行区分并辨认。另一根天线用于认知节点分组的传输工作,包括数据分组和协议分组,节点的工作模式为半双工工作模式,即节点在某一时刻只能应用一个信道来传输数据或者接收数据。2)在认知无线Adxa0Hoc网络中,PU在授权频段上进行通信,SU以一种机会式接入的方式使用授权用户的频段,即某段时间内,SU可以使用主用户不使用的频段。网络中的SU通过多跳的方式进行通信,每个SU都具有频谱检测能力,可以检测出主用户在某段时间内不使用的所有频段,以供自己选择接入。假设主用户各个信道之间相互独立,且为ON/OFF随机过程,如图所示:在主用户信道使用模型图3中,当信道处于关状态时,SU可以使用该信道。对频段i,{Nn,n≥1}表示处于开状态(ON-State)的随机变量序列,{Fn,n≥1}表示处于关状态(OFF-State)的随机变量序列,则这两个随机变量序列是两个计数过程。假设这两个随机变量序列独立且分别服从强度为n(t)i和f(t)i的泊松过程,非齐次的泊松过程(参数与时间有关)可以转化为齐次泊松过程进行分析,因此在一段时间(0,t]内,这两个随机变量服从ni和fi的齐次泊松分布。每段ON状态和OFF状态持续的时间分别为ξn和ζn,分别服从参数为λi和μi的指数分布。那么在一段时间(0,t]中,对信道i,次用户可以通过这些先验信息获得信道的利用率Ui:Ui=SU使用该信道的平均时间/(SU使用该信道的平均时间+PU使用该信道的平均时间)信道为主用户的信道,次用户可以通过先验信息获得信道的平均吞吐量Ri,由于PU和SU共享该信道,所以从SU角度而言,信道吞吐量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="81"/>为: R i SU = R i × U i ]]> 3)节点MAC层采用载波侦听/冲突避免机制(Carrierxa0Sensexa0Multiplexa0Accessxa0withxa0Collisionxa0Avoidance,CSMA/CA),由于网络中不需要公共控制信道,载波监听和握手机制都是在节点发送分组的信道上进行。本发明的具体实现过程为:CAODV有三种基本的报文:表4RREQ(Routexa0REQuest)报文,表5RREP(Routexa0REPly)报文和表6RRER(Routexa0RERor)报文。同时我们修改节点维护的路由表表项,如表7所示,分别用来记录首选信道和备用信道。表4.CAODV的RREQ报文格式 ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 表5.CAODV的RREP报文格式 ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 表6.CAODV的RRER报文格式 ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 表7.CAODV的路由表部分表项 xa0xa0des
xa0xa0next
xa0xa0pc
xa0xa0sc
●路由发现过程1)RREQ分组节点在有需要时(路径不存在或者无效),在其SOP信道上先后分别广播RREQ来进行路由发现。RREQ分组包括:信源地址、信源序列号、广播ID、信宿地址、信宿序列号、跳计数、PSI。其中:A:<信源地址,广播ID>是RREQ分组的唯一标识;B:信源节点维护一个信源序列号,表示的是“到信源的反向路由的新旧”;C:信宿序列号则表示的是“到信宿的前向路由的新旧”,是过去所有接收到的与信宿有关的消息中的最大值。要求节点为每一个目的节点都维护一个信宿序列号;D:跳计数的初始值设置为0;E:PSI初始值为信源节点的SOP个数;2)对RREQ的处理节点扫描自己的SOP信道来接收RREQ信息,接收到RREQ的节点会作出如下处理:1.创建一个路由表项,先暂时不分配有效的序列号,只用来记录反向的路径;将RREQ中的SOP信息和本节点的SOP信息取交集获得相同频谱的个数,该数值如果小于RREQ消息中PSI值,则用该数值替换原来的PSI值,若大于则PSI值不变。2.节点设置两个定时器,一个为“路由等待定时”,另一个为“路由发现定时”。路路由等待定时的作用有两个:一是因为上游节点是在自己的SOP信道上依次发送RREQ信息,邻居节点与上游几点也许有几个相同信道可以用来通信,邻居节点为了获得所有相同信道的信道质量,从开始在第一个信道上收到RREQ消息时,要等待一些时间才能获得所有本节点和上游节点相同的信道质量;第二是为了获得可用频谱更加丰富的邻居节点,传统AODV再次收到拥有相同标识的RREQ分组后会丢弃该分组,在认知网络中,也许再次收到的RREQ信息的发送节点会和本节点有更多可以用来通信的频段,这样定义充分考虑了认知节点的频谱多样性。路由发现定时是为了表征RREQ消息的新旧,显然路由发现定时要大于路由等待定时。3.情况1:在“路由等待定时内”,收到拥有相同标识的,但是来自不同上游节点的RREQ分组,先将该RREQ中的SOP信息和本节点的SOP信息取交集获得相同频谱的个数,该数值如果小于该RREQ消息中PSI值,则用该数值替换原来的PSI值,若大于则PSI值不变。经过这个步骤处理的RREQ称为更新后的RREQ分组。更新后分组的跳计数>已经收到的RREQ分组跳计数+1;或者,更新后分组的跳计数<=已经收到的RREQ分组跳计数+1且更新后分组中的PSI值<=已收到RREQ分组的PSI值;情况2:在大于“路由等待定时”且小于“路由发现定时”时间内收到一个拥有相同标识的RREQ分组,就抛弃该分组;否则,或者创建或者更新这个反向路由表项:A:信宿序列号=RREQ分组的信宿序列号;B:下一跳节点=广播该RREQ的邻居(从哪个邻居接受到的此RREQ分组);C:跳数=RREQ分组的“跳计数”字段值;D:计算本节点从所有信道上收到的该邻居发送的RREQ的信噪比(Signalxa0Noisexa0Rate,SNR),结合信道容量定义信道的信道度量(Channelxa0Metric,CM): CM i = ( R i SU ) α ( SNR i ) β ]]> 其中α和β均为权重因子,且有0≤α≤1,0≤β≤1。将信道按照CM值大小排序,取出CM值最大的信道ID写入PC路由表项,将第二个CM值对应的信道ID写入SC路由表项。E:设置表项的“过时定时器”;3.如果该节点就是信宿,或者节点路由表中含有到信宿的活动的表项,且表项序列号大于RREQ信宿序列号,那么节点就产生RREP发送到信源;如果不满足以上两点,转入到4进行处理;4.更新RREQ分组然后进行广播A:信宿序列号=本节点收到的该信宿相关的最大序列号;B:跳计数加1;C:RREQ的节点SOP信息替换成本节点的SOP信息。D:RREQ中的PSI值为路由表中下一跳节点所传播的RREQ到达本节点更新后的PSI值。3)RREP的传播产生RREP的条件如上所述,RREP中的内容包括:跳计数、信宿序列号、信宿地址、生存时间、信源地址、PC、SC等。节点通过前面建立起来的反向路由反馈给源节点,并且是以单播方式发送,目的节点产生的RREP消息跳计数为0;中间节点产生的RREP消息跳计数为本结点到信宿的跳数(查相应路由表项可得到)。RREP消息在本节点选出的首选信道或者备用信道上传输。4)对RREP的处理节点对接收到的RREP分组作如下处理:1.如果没有与RREP分组中的信源相匹配的表项,则先创建一个“前向路由表”空表项;2.否则,满足如下条件下对已有表项进行更新:A:现有表项的信宿序列号小于RREP分组中的信宿序列号;B:现有的表项没有激活;C:信宿序列号虽然相同,但RREP分组的“跳计数“值小于表项中对应的值,或者更新或者创建,产生一个新的前向路径:下一跳=广播RREP的邻居节点;信宿序列号=RREP中的信宿序列号;将RREP中PC和SC的值写入节点前向路由表项中PC和SC项。3.将RREP跳计数加1;用节点反向路由表项中的PC和SC值替换RREP中PC和SC的值,然后将RREP沿着反向路径传播。●路由维护过程1)与活动路由无关的结点移动,并不影响信源到信宿的寻径;2)如果信源结点移动导致路由不可用,则由信源重新发起路由发现的过程;3)当信宿结点或活动路由的中间结点移动,导致链路中断;则链路的“上游结点”主动发送一个RERR,该RERR的信宿序列号大于其所获取的信宿序列号,跳计数的值设为无穷大(∞),并通过该节点的所有SOP信道传播到所有的活动邻居。当由于主用户的出现导致PC信道不可用从而链路中断时,节点应立即将数据在SC信道上传输,传统AODV协议没有采用该机制,出现上述情况时只能等待或者重新发起寻路过程,采用备用信道机制,降低了由于主用户的出现导致链路不可用的路由重寻开销。●数据转发过程每一个中间节点可能为多个端到端的连接承担数据转发任务,维持多个路由表。每一个一个端到端的连接对应一个数据流,这些数据流由于业务种类的不同对于信道的要求也是不相同的,节点面临着多数据流多信道的调度问题。在某一时刻,针对节点究竟调度哪个信道来传输数据,本发明提出了一种比例公平的调度方法。假设节点有1∶2...∶N个可用信道,数据流在每个信道上期望发送个数为M1∶M2∶...MN,那么将节点缓存区分为N个,缓存区的长度比例为M1∶M2∶...MN。本实施例中假设节点有三个可用信道,有四个数据流需要转发,其中两个数据流都期望在2信道上发送数据,其余两个数据流分别在1信道和3信道上发送,我们将节点缓存区按照信道个数分为1,2,3三个缓存区,缓存区的长度为1∶2∶1,将4个数据流的数据包按照期望传输的信道分别存入相应的缓存区,对于某一时刻节点调度哪个信道来传输数据,本发明提出了一种比例公平的调度算法,计算每个信道的公平因子(Fairxa0Factor,FF)FFi=信道i所对应的缓存区数据包的比特数/在一段时间内在该信道上传输的总比特数,分别计算节点所有信道的FF值,节点调度FF值最大的信道传输数据。为更加清楚的体现CAODV路由发现过程,现举例说明:如图4所示,各节点的网络拓扑图如下,假设S节点的SOP信息为1,2,3,其他节点的SOP信息均在图4上标明。CAODV路由协议中,RREQ报文格式已经在前面给出,由于其中<节点的SOP信息,PSI>这两项是本发明定义,RREP报文中<PC,SC>这两项是本发明定义,我们主要关注这些内容的更新,RREQ和RREP报文其他项的更新与传统AODV路由协议中一样,这里我们不再赘述。步骤一:如图4所示,源节点S需要向目的节点D发送数据,S发现没有到达D的路由,于是发起路由发现过程,S分别在信道1,2,3上依次发送RREQ消息,其中的<节点的SOP信息,PSI>赋值为<1,2,3,3>。节点a有两根天线,一根天线用于对其可用信道的扫描,首先在信道1上收到RREQ报文,创建路由表项,检查本节点与S节点的相同SOP数目,发现有两个相同,将RREQ<节点的SOP信息,PSI>赋值为<1,2,3,2>,等待一定时间,在信道2上再次收到S节点的RREQ信息,应用以上定义的路由度量选出PC和SC,假设1为PC,2为SC,创建相应路由表项,S为下一跳节点,相当于建立了一条a节点到s节点的反向路径,更新并广播RREQ消息,a节点发送的RREQ消息中<节点的SOP信息,PSI>为<1,2,6,2>。在上述过程中发生的同时,同理可以得到c节点的路由表项如图4所示,c节点广播的RREQ消息中<节点的SOP信息,PSI>赋值为<2,3,4,2>。步骤二:如图5所示,a节点分别在信道1,2,6上依次发送RREQ消息,同时c节点分别在信道2,3,4上依次发送RREQ消息。如图所示e节点先在信道3上收到c节点发送的RREQ消息,创建路由表项,检查本节点与RREQ消息中相同的SOP数目,发现有两个相同,RREQ中的<节点的SOP信息,PSI>保持不变,为<2,3,4,2>。等待一定时间,在信道4上再次收到c节点的RREQ信息,应用以上定义的路由度量选出PC和SC,假设4为PC,3为SC,创建相应路由表项,c为下一跳节点,相当于建立了一条e节点到c节点的反向路径。由于e节点在路由等待定时内没有收到来自其他上游节点的RREQ消息,于是更新并广播RREQ消息,e节点发送的RREQ消息中<节点的SOP信息,PSI>为<3,4,5,2>。在上述过程发生的同时,b节点在信道6上收到RREQ信息所示,检查本节点与a节点的相同SOP数目,发现有1个相同,将RREQ<节点的SOP信息,PSI>的<1,2,6,2>变化为为<1,2,6,1>,将RREQ缓存起来,等待一定时间。步骤三:如图6所示,e节点分别在信道3,4,5上依次发送RREQ消息,该消息中<节点的SOP信息,PSI>为<3,4,5,2>,b节点处于路由等待时间,在信道4和5上分别收到e节点发来的RREQ消息,发现RREQ中的节点SOP信息和本节点有两个相同的频谱,与该RREQ消息中的PSI值相等,该RREQ消息中的<节点的SOP信息,PSI>保持不变,为<3,4,5,2>,检查满足跳数要求,将更新后的RREQ消息中的PSI值与缓存的RREQ的PSI值作比较,发现2大于1,于是更新路由表,将下一跳节点由a变成e,应用以上定义的路由度量选出PC和SC,假设4为PC,5为SC,写入相应路由表项,相当于将原有路由更新为b节点到e节点的反向路径,更新并广播RREQ消息,b节点发送的RREQ消息中<节点的SOP信息,PSI>为<4,5,6,2>。在上述过程发生的同时,D节点首先在信道3上收到来自e节点的RREQ信息,记录下一跳节点e的信息,检查本节点与e节点的相同SOP数目,发现有3个相同,大于RREQ中的PSI值,所以RREQ<节点的SOP信息,PSI>保持不变,为<3,4,5,2>,等待一定时间。步骤四:如图7所示,b节点分别在信道4,5,6上依次发送RREQ消息,该消息中<节点的SOP信息,PSI>为<4,5,6,2>,D节点处于路由等待时间,收到b节点发来的RREQ消息,发现RREQ中的节点SOP信息和本节点有三个相同的频谱,大于该RREQ中的PSI值,RREQ消息中<节点的SOP信息,PSI>为<4,5,6,2>保持不变,将更新后的RREQ消息中的PSI值与缓存的RREQ的PSI值作比较,发现两值相等,丢弃该分组。原来维护的反向路由表不变,由于D节点是在3,4,5三个信道上分别收到来自e节点的RREQ报文,应用以上定义的路由度量选出PC和SC,假设5为PC,4为SC,写入相应路由表项,建立D节点到e节点的反向路径。在上述过程发生的同时,e节点也收到来自b节点的RREQ分组,由于该分组到达时间超过了e节点的路由等待时间,分组被丢弃。步骤五:如图8所示,目的节点D收到RREQ消息后,按照路由表以单播的方式发送RREP报文,RREP报文中的<PC,SC>被赋值为<5,4>。e节点收到RREP消息后,创建正向路由表记录目的节点D和下一跳节点D,同时将RREP中的<5,4>值写入正向路由表的pc和sc项,e将反向路由表的pc和sc值写入RREP的<PC,SC>两项,值为<4,3>,并将其发送给c节点。c节点收到RREP消息后,创建正向路由表记录目的节点D和下一跳节点e,同时将RREP中的<4,3>值写入正向路由表的pc和sc值,c将反向路由表的pc和sc值写入RREP的<PC,SC>两项,值为<2,3>,并将其发送给S节点。S节点收到RREP消息后,知道自己是该信息的终点,创建正向路由表记录目的节点D和下一跳节点c,同时将RREP中的<2,3>值写入正向路由表的pc和sc项,这样从S节点到D节点的一条正向路径和节点的通信信道就建立好了。节点首先选择PC信道传输数据,如果在该信道上检测到主用户出现,就选择SC信道传输数据。本发明提出的认知无线Adxa0Hoc网络的认知按需路由实现方法,该方法充分考虑了认知无线Adxa0Hoc网络的特点,选出了一条高效可靠的路径以实现用户通信的连续性,保证了通信质量。应当理解,以上借助优选实施例对本发明的技术方案进行的详细说明是示意性的而非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。